package com.meiqiongproperty.yiguanjia.http.api;


import com.meiqiongproperty.yiguanjia.http.model.HttpResult;
import com.meiqiongproperty.yiguanjia.httpbean.AdvertInfoBean;
import com.meiqiongproperty.yiguanjia.httpbean.HomeNoticeBean;
import com.meiqiongproperty.yiguanjia.httpbean.HouseBean;
import com.meiqiongproperty.yiguanjia.httpbean.TenementAddressBean;
import com.meiqiongproperty.yiguanjia.httpbean.TenementInformationInfo;
import com.meiqiongproperty.yiguanjia.httpbean.UserInfo;
import com.meiqiongproperty.yiguanjia.httpbean.healthy.HealthyInfoBean;
import com.meiqiongproperty.yiguanjia.httpbean.healthy.HealthyShopListBean;
import com.meiqiongproperty.yiguanjia.httpbean.healthy.PhysicianConsultBean;
import com.meiqiongproperty.yiguanjia.httpbean.healthy.PhysicianConsultDetailBean;
import com.meiqiongproperty.yiguanjia.httpbean.healthy.SubmitQuestionContentBean;
import com.meiqiongproperty.yiguanjia.httpbean.life.LifeDetailBean;
import com.meiqiongproperty.yiguanjia.httpbean.life.LifeServiceDetailBean;
import com.meiqiongproperty.yiguanjia.httpbean.life.LifeWXPay;
import com.meiqiongproperty.yiguanjia.httpbean.life.LifeZFBPay;
import com.meiqiongproperty.yiguanjia.httpbean.order.LifeServiceOrderBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.LifeServiceOrderDetailBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.OrderDetailListBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.ShopOrderBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.ShopOrderRepayWXBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.ShopOrderRepayZFBBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.TenementOrderBean;
import com.meiqiongproperty.yiguanjia.httpbean.order.TenementOrderDetailBean;
import com.meiqiongproperty.yiguanjia.httpbean.pension.MonthlyComboBean;
import com.meiqiongproperty.yiguanjia.httpbean.shopping.ShopDetailBean;
import com.meiqiongproperty.yiguanjia.httpbean.shopping.ShopListBean;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.CarBean;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.Notice;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.pay.ChargeCarZFB;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.pay.CommPayWX;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.pay.CommPayZFB;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.pay.WaterWX;
import com.meiqiongproperty.yiguanjia.httpbean.tenement.pay.WaterZFB;
import com.meiqiongproperty.yiguanjia.httpbean.user.ForGetpassword;
import com.meiqiongproperty.yiguanjia.httpbean.user.RegiserBean;
import com.meiqiongproperty.yiguanjia.httpbean.user.SmSCode;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.POST;
import rx.Observable;

/**
 * 请求api
 *
 * @author Chen
 * @version V1.0
 * @date 17/1/13
 */
public interface YGJApi {
    @POST("/app/login")
    Observable<HttpResult<UserInfo>> doLogin(@Body RequestBody requestBody);

    /**
     * 获取省份
     *
     * @param requestBody
     * @return
     */
    @POST("/app/getRegion")
    Observable<HttpResult<TenementAddressBean>> getRegion(@Body RequestBody requestBody);

    /**
     * 获取小区
     *
     * @param requestBody
     * @return
     */
    @POST("/app/getHouse")
    Observable<HttpResult<HouseBean>> getHouse(@Body RequestBody requestBody);

    //注册发送验证码
    //type 登录：LOGIN 注册：REGISTER 找回密码：RESETPASSWORD
    @POST("/app/sendSMS")
    Observable<HttpResult<SmSCode>> sendSMS(@Body RequestBody requestBody);

    ///app/register注册
    @POST("/app/register")
    Observable<HttpResult<RegiserBean>> register(@Body RequestBody requestBody);

    //找回密码
    @POST("/app/resetPassword")
    Observable<HttpResult<ForGetpassword>> resetPassword(@Body RequestBody requestBody);

    //物业公告
    @POST("/app/getNotice")
    Observable<HttpResult<Notice>> getNotice(@Body RequestBody requestBody);

    //首页公告
    @POST("/app/getNotice")
    Observable<HttpResult<HomeNoticeBean>> getHomeNotice(@Body RequestBody requestBody);

    //退出登录
    @POST("/app/logout")
    Observable<HttpResult<ForGetpassword>> logout(@Body RequestBody requestBody);

    //物业支付 支付宝方式
    @POST("/app/chargeProperty")
    Observable<HttpResult<CommPayZFB>> chargeProperty(@Body RequestBody requestBody);

    //物业支付 微信支付
    @POST("/app/chargeProperty")
    Observable<HttpResult<CommPayWX>> chargePropertyWAX(@Body RequestBody requestBody);

    //商品列表
    @POST("/app/shopList")
    Observable<HttpResult<ShopListBean>> shopList(@Body RequestBody requestBody);

    //商品详情
    @POST("/app/shopDetail")
    Observable<HttpResult<ShopDetailBean>> shopDetail(@Body RequestBody requestBody);

    //生活支付 微信支付
    @POST("/app/chargeLife")
    Observable<HttpResult<WaterZFB>> chargeLife(@Body RequestBody requestBody);

    //生活支付 微信支付
    @POST("/app/chargeLife")
    Observable<HttpResult<WaterWX>> chargeLifeWX(@Body RequestBody requestBody);

    //获取广告位下广告 1 首页上部广告 2怡生活首页 3怡商城首页 4怡养老首页 5医疗健康首页 6怡物业
    @POST("/app/getAdvertInfo")
    Observable<HttpResult<AdvertInfoBean>> getAdvertInfo(@Body RequestBody requestBody);

    //获取车牌号
    @POST("/app/getCar")
    Observable<HttpResult<CarBean>> getCar(@Body RequestBody requestBody);

    //停车费缴费
    @POST("/app/chargeCar")
    Observable<HttpResult<ChargeCarZFB>> chargeCar(@Body RequestBody requestBody);

    //社区资讯  当Type 为1时需要 1怡生活 2怡健康 3 怡养老
    @POST("/app/getInfo")
    Observable<HttpResult<TenementInformationInfo>> getInfo(@Body RequestBody requestBody);

    //获取健康个人档案信息
    @POST("/app/getHealthInfo")
    Observable<HttpResult<HealthyInfoBean>> getHealthyInfo(@Body RequestBody requestBody);

    //获取咨询列表数据
    @POST("/app/askList")
    Observable<HttpResult<PhysicianConsultBean>> getConsultListInfo(@Body RequestBody requestBody);

    //获取咨询列表详情数据
    @POST("/app/askDetail")
    Observable<HttpResult<PhysicianConsultDetailBean>> getConsultDetailInfo(@Body RequestBody requestBody);

    //提交提问内容数据
    @POST("/app/ask")
    Observable<HttpResult<SubmitQuestionContentBean>> submitQuestionContent(@Body RequestBody requestBody);

    //提交订单 支付宝
    @POST("/app/createShopOrder")
    Observable<HttpResult<CommPayZFB>> submitOrderDataZFB(@Body RequestBody requestBody);

    //提交订单 微信
    @POST("app/createShopOrder")
    Observable<HttpResult<CommPayWX>> submitOrderDataWX(@Body RequestBody requestBody);

    //订单 商城
    @POST("app/orderList")
    Observable<HttpResult<ShopOrderBean>> getShopOrder(@Body RequestBody requestBody);

    //订单 生活服务
    @POST("app/orderList")
    Observable<HttpResult<LifeServiceOrderBean>> getLifeServiceOrder(@Body RequestBody requestBody);

    //订单 物业
    @POST("app/orderList")
    Observable<HttpResult<TenementOrderBean>> getTenementOrder(@Body RequestBody requestBody);

    //怡生活 列表
    @POST("app/getService")
    Observable<HttpResult<LifeDetailBean>> getLifeDetailList(@Body RequestBody requestBody);

    //怡生活 列表详情
    @POST("app/getServiceinfo")
    Observable<HttpResult<LifeServiceDetailBean>> getLifeServiceDetail(@Body RequestBody requestBody);

    //服务下单 支付宝
    @POST("app/buyService")
    Observable<HttpResult<LifeZFBPay>> getLifeServiceZFBPay(@Body RequestBody requestBody);

    //服务下单 微信
    @POST("app/buyService")
    Observable<HttpResult<LifeWXPay>> getLifeServiceWXPay(@Body RequestBody requestBody);

    //获取订单详情数据
    @POST("app/orderDetail")
    Observable<HttpResult<OrderDetailListBean>> getOrderDetailList(@Body RequestBody requestBody);

    //生活服务订单详情
    @POST("app/orderDetail")
    Observable<HttpResult<LifeServiceOrderDetailBean>> lifeServiceOrderDetail(@Body RequestBody requestBody);

    //物业订单详情
    @POST("app/orderDetail")
    Observable<HttpResult<TenementOrderDetailBean>> tenementOrderDetail(@Body RequestBody requestBody);

    //商品订单重新支付（微信）
    @POST("app/repayOrder")
    Observable<HttpResult<ShopOrderRepayWXBean>> repayShopWXOrder(@Body RequestBody requestBody);

    //商品订单重新支付（支付宝）
    @POST("app/repayOrder")
    Observable<HttpResult<ShopOrderRepayZFBBean>> repayShopZFBOrder(@Body RequestBody requestBody);

    //修改密码
    @POST("app/resetPwdByPhone")
    Observable<HttpResult<ForGetpassword>> modifyPwd(@Body RequestBody requestBody);


    //包月套餐
    @POST("app/shopList")
    Observable<HttpResult<MonthlyComboBean>> pensionMonth(@Body RequestBody requestBody);


    //保健商城
    @POST("app/shopList")
    Observable<HttpResult<HealthyShopListBean>> HealthyShopList(@Body RequestBody requestBody);

    //报修投诉
    @POST("app/feedback")
    Observable<HttpResult<ForGetpassword>> feedback(@Body RequestBody requestBody);

    @POST("app/upPortrait")
    Observable<HttpResult<ForGetpassword>> upPortrait(@Body RequestBody requestBody);

}
